import axios from 'axios'
import Qs from 'qs'

import Util from './util'

const axiosInstance = axios.create({
  baseURL: '/',
  timeout: 30000,
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded',
    'sessionID': Util.getlocalStorage('sessionID')
  },
  responseType: 'json',
  transformRequest: [function (data) {
    data = Qs.stringify(data)
    return data
  }]
  // transformResponse: [function(data) {
  // 	  这里提前处理返回的数据
  // 	  console.log(JSON.parse(data));
  // 	  console.log(data);
  // 		return data;
  // 	}
  // ]
})

export default {
  init(router, store, VM) {
    // console.log(router);
    // console.log(store);

    // 拦截器
    axiosInstance.interceptors.request.use(config => {
      const sessionID = Util.getlocalStorage('sessionID')

      if (sessionID) {
        config.headers['sessionID'] = sessionID
        // axiosInstance.defaults.headers.common['sessionID'] = sessionID
      }
      return config
    }, function (error) {
      return Promise.reject(error)
    })

    axiosInstance.interceptors.response.use(function (response) {
      if (response.data.errCode) {
        VM.$message({
          message: response.data.errInfo,
          type: 'error'
        })
      } else {
        return response.data
      }
      // if (response.data.code == 0) { //正常
      // 	return response.data;
      // } else if (response.data.code == 'nologin') { //登录
      // 	VM.$message({
      // 		message: '请登录',
      // 		type: 'error'
      // 	})
      // 	Util.removelocalStorage('user')
      // 	router.push({
      // 		name: 'Login'
      // 	})
      // } else {
      // 	VM.$message({
      // 		message: response.data.msg,
      // 		type: 'error'
      // 	})
      // }

      return Promise.reject()
    }, function (error) {
      // console.log(error);
      VM.$message({
        message: '接口异常',
        type: 'error'
      })

      return Promise.reject(error)
    })
  },
  axiosInstance
}
